#include "SelectionStrategyFactory.h"
#include "SimpleSelectionStrategy.h"
#include "TournamentSelectionStrategy.h"
#include "RouletteWheelSelectionStrategy.h"
#include "DeterministicSelectionStrategy.h"
#include "RankSelectionStrategy.h"
#include "SelectionStrategy.h"
#include "parameters.h"

SelectionStrategy* SelectionStrategyFactory::getStrategy(int type)
{
    switch(type)
        {
        case RouletteWheel:
            qDebug() << "ROULETTE";
            return new RouletteWheelSelectionStrategy();
        case Tournament:
            qDebug() << "TOURNAMENT";
            return new TournamentSelectionStrategy();
        case Deterministic:
            qDebug() << "DETERMINISTIC";
            return new DeterministicSelectionStrategy();
        case Rank:
            qDebug() << "RANK";
            return new RankSelectionStrategy();
        case Simple:
        default:
            qDebug() << "SIMPLE";
            return new SimpleSelectionStrategy();
        }
}
